home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / vrs501.zip / VRS-M2.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-08  |  9KB  |  374 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  TINTEGER011(3)
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  TINTEGER014(3)
  33.     Integer  INTEGER015
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   STRING005
  39.     String   STRING006
  40.     String   STRING007
  41.     String   STRING008
  42.     String   STRING009
  43.  
  44. ;------------------------------------------------------------------------------
  45.  
  46.     Goto LABEL001
  47.     End
  48.     If (0 == 0) STRING001 = "NO"
  49.     If (0 == 1) STRING001 = "YES"
  50.  
  51.     EndFunc
  52.  
  53.     :LABEL001
  54.     STRING002 = String(PcbNode())
  55.     If (PcbNode() == 0) STRING002 = "A"
  56.     STRING009 = GetEnv(STRING002 + "RECNO")
  57.     STRING009 = ToInteger(STRING009)
  58.     STRING006 = "@X01≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
  59.     DOpen 0, PPEPath() + "VRS.DBF", 0
  60.     DTop 0
  61.     INTEGER007 = DGet(0, "LOTTO")
  62.     DGet 0, "BANK_INT", INTEGER008
  63.     DGet 0, "TRSF_LIMIT", INTEGER009
  64.     DCloseAll
  65.     DOpen 0, PPEPath() + "USER.DBF", 0
  66.     DGo 0, STRING009
  67.     INTEGER001 = DRecNo(0)
  68.     DGet 0, "CASH", INTEGER002
  69.     DGet 0, "BANKED", INTEGER003
  70.     DGet 0, "TRSF_AMT", INTEGER010
  71.     DGet 0, "HANDLE", STRING007
  72.     DGet 0, "FILE_NUM", STRING008
  73.     DCloseAll
  74.     STRING007 = Trim(Mixed(STRING007), " ")
  75.     Cls
  76.     PrintLn "   @X0A░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@X07"
  77.     PrintLn "@X0A   ░┌───────────────────────────────────────────────────────────────────┐░@X07"
  78.     PrintLn "@X0A   ░│                                                                   │░@X07"
  79.     PrintLn "@X0A   ░│                             WELCOME TO                            │░@X07"
  80.     PrintLn "@X0A   ░│                                                                   │░@X07"
  81.     PrintLn "@X0A   ░│             @X0B ╖╓ ╓╖ ╓╖ ╓╖ ╥╖ ╖╓    ╓╖ ╓╖ ╖╓ ╥ ╓╖ ╓╖ ╓╖             @X0A│░@X07"
  82.     PrintLn "@X0A   ░│             @X0B ╙╖ ╟╢ ║║ ╟╢ ║║ ║║    ╙╖ ╟╢ ║║ ║ ║║ ║╖ ╙╖             @X0A│░@X07"
  83.     PrintLn "@X0A   ░│             @X0B ╜╙ ╜╙ ╜╙ ╜╙ ╨╜ ╙╜    ╙╜ ╜╙ ╙/ ╨ ╜╙ ╙╜ ╙╜             @X0A│░@X07"
  84.     PrintLn "@X0A   ░│                                                                   @X0A│░@X07"
  85.     PrintLn "@X0A   ░│                @X8CPLEASE HOLD YOUR ID OVER THE SCANNER@X0F               @X0A│░@X07"
  86.     PrintLn "@X0A   ░│                                                                   │░@X07"
  87.     PrintLn "@X0A   ░├───────────────────────────────────────────────────────────────────┤░@X07"
  88.     PrintLn "@X0A   ░│    @X0C░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@X0A    │░@X07"
  89.     PrintLn "@X0A   ░│    @X84░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@X0A    │░@X07"
  90.     PrintLn "@X0A   ░│    @X0C░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@X0A    │░@X07"
  91.     PrintLn "@X0A   ░└───────────────────────────────────────────────────────────────────┘░@X07"
  92.     PrintLn "@X0A   ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░@X07"
  93.     Call PPEPath() + "VRS-M19.PPE"
  94.     :LABEL002
  95.     Cls
  96.     PrintLn "@POS:5@@X0A┌───────────────────────────────────────────────────────────────────@X0A┐@X07"
  97.     PrintLn "@POS:5@@X0A│               @X0B THANK YOU FOR USING XANADU SAVINGS                 @X0A│@X07"
  98.     PrintLn "@POS:5@@X0A│                                                                   │@X07"
  99.     PrintLn "@POS:5@@X0A│      LOTTERY POOL  : @X0C", INTEGER007, "@POS:40@@X0A(@X0E", INTEGER007 / 25, " @X0Ato@X0E 1 payoff@X0A)", "@X0A@POS:73@│@X07"
  100.     PrintLn "@POS:5@@X0A│      ACCOUNT NUMBER:@X0B ", STRING008, "@POS:73@@X0A│@X07"
  101.     PrintLn "@POS:5@@X0A│                                                                   │@X07"
  102.     PrintLn "@POS:5@@X0A│      CREDIT ON HAND: @X03", INTEGER002, "@POS:40@@X0AACCOUNT BALANCE: @X03", INTEGER003, "@POS:73@@X0A│@X07"
  103.     PrintLn "@POS:5@@X0A│      TRANSFERRED   :@X0B ", 0, "@POS:41@@X0ATRANSFER LIMIT:@X0B ", 0, "@POS:73@@X0A│@X07"
  104.     PrintLn "@POS:5@@X0A│                                                                   │@X07"
  105.     PrintLn "@POS:5@@X0A├───────────────────────────────────────────────────────────────────┤@X07"
  106.     PrintLn "@POS:5@@X0A│      @X0C(@X0EW@X0C)ITHDRAW FUNDS                    (@X0ED@X0C)EPOSIT FUNDS @X0A         │@X07"
  107.     PrintLn "@POS:5@@X0A│      @X0C(@X0ET@X0C)RANSFER FUNDS                    (@X0EL@X0C)OTTERY TICKET@X0A ($25)   │@X07"
  108.     PrintLn "@POS:5@@X0A│                       @X0C(@X0EQ@X0C)UIT TRANSACTIONS @X0A                        │@X07"
  109.     PrintLn "@POS:5@@X0A└───────────────────────────────────────────────────────────────────┘@X07"
  110.     InputStr "    @X0AYour Choice Soldier @X02> _", STRING005, 10, 1, "DWTLQ", 0 + 8
  111.     Select Case (STRING005)
  112.         Case "Q"
  113.             Goto LABEL010
  114.         Case "W"
  115.             Goto LABEL004
  116.         Case "D"
  117.             Goto LABEL003
  118.         Case "T"
  119.             Goto LABEL005
  120.         Case "L"
  121.             If ((INTEGER002 < 25) && (INTEGER003 < 25)) Then
  122.                 Backup 80
  123.                 ClrEol
  124.                 PrintLn "   @X0CYour low on credits, sorry!@X0F"
  125.                 Delay (2 * 182) / 10
  126.                 Goto LABEL002
  127.             Endif
  128.             Goto LABEL009
  129.         Case ""
  130.             Goto LABEL010
  131.     End Select
  132.     :LABEL003
  133.     Backup 80
  134.     ClrEol
  135.     InputStr "   @X09How much would you like to deposit _", INTEGER006, 10, 10, Mask_Num(), 0
  136.     If (INTEGER006 == 0) Goto LABEL002
  137.     If (INTEGER006 > INTEGER002) Then
  138.         Backup 80
  139.         ClrEol
  140.         Print "   @X0CYOUR ID CHIP SHOWS ONLY :@X0F", INTEGER002, "@X0C CREDITS ON HAND@X0F"
  141.         Delay (2 * 182) / 10
  142.         Goto LABEL002
  143.     Endif
  144.     INTEGER002 = INTEGER002 - INTEGER006
  145.     INTEGER003 = INTEGER006 + INTEGER003
  146.     Backup 80
  147.     ClrEol
  148.     Print "   @X0CCREDIT DEPOSIT CLEARING...@X0F"
  149.     Delay (2 * 182) / 10
  150.     Goto LABEL008
  151.     :LABEL004
  152.     Backup 80
  153.     ClrEol
  154.     InputStr "   @X0AHow much would you like to Withdraw _", INTEGER006, 10, 10, Mask_Num(), 0
  155.     If (ToInteger(INTEGER006) == 0) End
  156.     If (ToInteger(INTEGER006) > INTEGER003) Then
  157.         Backup 80
  158.         ClrEol
  159.         Print "   @X0CYOUR AVAILABLE CREDIT IS ONLY: @X0F", INTEGER003
  160.         Delay (2 * 182) / 10
  161.         Goto LABEL002
  162.     Endif
  163.     INTEGER002 = INTEGER002 + INTEGER006
  164.     INTEGER003 = INTEGER003 - INTEGER006
  165.     Backup 80
  166.     ClrEol
  167.     Print "   @X0CWITHDRAWAL BEING CLEARED...@X0F"
  168.     Delay (2 * 182) / 10
  169.     Goto LABEL008
  170.     :LABEL005
  171.     Backup 80
  172.     ClrEol
  173.     InputStr "   @X0EWho would you like to transfer @X0Acredits@X0E to @X02>@X0F _", STRING004, 10, 25, Mask_Ascii(), 0 + 8
  174.     If (STRING004 == "") Goto LABEL002
  175.     STRING003 = String(Random(1000)) + "X" + STRING002
  176.     DOpen 0, PPEPath() + "USER.DBF", 0
  177.     DnCreate 0, PPEPath() + STRING003, "HANDLE"
  178.     DSeek 0, STRING004
  179.     If (DChkStat(0) > 0) Goto LABEL006
  180.     INTEGER004 = DRecNo(0)
  181.     DGet 0, "BANKED", INTEGER005
  182.     DGet 0, "FILE_NUM", STRING008
  183.     DCloseAll
  184.     Delete PPEPath() + STRING003 + ".NDX"
  185.     Goto LABEL007
  186.     :LABEL006
  187.     Backup 80
  188.     ClrEol
  189.     Print "   @X0CSorry, But that Soldier hasn't got an account here.@X0F"
  190.     Delay (3 * 182) / 10
  191.     Goto LABEL002
  192.     :LABEL007
  193.     Backup 80
  194.     ClrEol
  195.     Print "   @X0EHow many credits to transfer into@X0C ", STRING004, "'s@X0E account@X0A "
  196.     InputStr "_", INTEGER006, 11, 10, Mask_Num(), 0
  197.     If (INTEGER006 == "") Goto LABEL007
  198.     If (INTEGER003 < INTEGER006) Then
  199.         Backup 80
  200.         ClrEol
  201.         Print "   @X0CYOUR AVAILABLE CREDIT IS ONLY :@X0F", INTEGER003
  202.         Delay (3 * 182) / 10
  203.         Goto LABEL002
  204.     Endif
  205.     DCloseAll
  206.     DOpen 0, PPEPath() + "USER.DBF", 0
  207.     DGo 0, INTEGER004
  208.     DPut 0, "BANKED", INTEGER005
  209.     INTEGER005 = INTEGER005 + INTEGER006
  210.     INTEGER003 = INTEGER003 - INTEGER006
  211.     DCloseAll
  212.     Backup 80
  213.     ClrEol
  214.     PrintLn "  @X0C TRANSFER TO@X0A ", STRING004, "@X0C PROCESSING...@X0F"
  215.     FAppend 1, PPEPath() + STRING008 + ".MSG", 2, 0
  216.     FPutLn 1, "@X0A" + String(Date()) + "  " + "FROM @X0E:@X0CCENTRAL BANK"
  217.     FPutLn 1, "@X0E" + STRING007 + "@X0B Transferred :@X02 " + String(INTEGER006) + "@X0B credits to your account."
  218.     FPutLn 1, STRING006
  219.     FClose 1
  220.     Delay (3 * 182) / 10
  221.     :LABEL008
  222.     DCloseAll
  223.     DOpen 5, PPEPath() + "USER.DBF", 0
  224.     DGo 5, INTEGER001
  225.     DPut 5, "CASH", INTEGER002
  226.     DPut 5, "BANKED", INTEGER003
  227.     DPut 5, "TRSF_AMT", INTEGER010 + INTEGER006
  228.     DCloseAll
  229.     Goto LABEL002
  230.     :LABEL009
  231.     If (INTEGER002 < 25) Then
  232.         INTEGER003 = INTEGER003 - 25
  233.     Else
  234.         INTEGER002 = INTEGER002 - 25
  235.     Endif
  236.     TINTEGER011(1) = Random(2)
  237.     TINTEGER011(2) = Random(2)
  238.     TINTEGER011(3) = Random(2)
  239.     TINTEGER014(1) = Random(2)
  240.     TINTEGER014(2) = Random(2)
  241.     TINTEGER014(3) = Random(2)
  242.     INTEGER015 = 0
  243.     Backup 80
  244.     ClrEol
  245.     PrintLn "@POS:23@@X0A┌──────────────────────────────┐@X0F"
  246.     PrintLn "@POS:23@@X0A│ @X0BXanadu Global Lottery System @X0A│@X0F"
  247.     PrintLn "@POS:23@@X0A└──────────┬──────┬────────────┘@X0F"
  248.     For INTEGER013 = 1 To 3
  249.         For INTEGER012 = 1 To 10
  250.             Backup 80
  251.             ClrEol
  252.             Print "@POS:34@@X0A│@X05 ", Random(2), "@X0F "
  253.             Delay 1
  254.         Next
  255.         Backup 80
  256.         ClrEol
  257.         Print "@POS:34@@X0A│@X0D ", TINTEGER011(INTEGER013), " ", "@POS:36@@X09 ", TINTEGER014(INTEGER013), "@X0A │@X0F"
  258.         If (TINTEGER011(INTEGER013) == TINTEGER014(INTEGER013)) Then
  259.             Print " @X8CMatch!@X07"
  260.             Inc INTEGER015
  261.         Endif
  262.         Newline
  263.     Next
  264.     PrintLn "@POS:34@@X0A└──────┘@X0F"
  265.     If (INTEGER015 == 3) Then
  266.         PrintLn "@POS:34@ @X82Winner!@X0F"
  267.         INTEGER002 = INTEGER002 + INTEGER007
  268.         DOpen 4, PPEPath() + "VRS.DBF", 0
  269.         DTop 4
  270.         INTEGER007 = 0
  271.         DPut 4, "LOTTO", INTEGER007
  272.         DCloseAll
  273.     Endif
  274.     If (INTEGER015 < 3) Then
  275.         DOpen 3, PPEPath() + "VRS.DBF", 0
  276.         DTop 3
  277.         INTEGER007 = INTEGER007 + 25
  278.         DPut 3, "LOTTO", INTEGER007
  279.         DCloseAll
  280.         PrintLn "@POS:34@ @X8ELOSER!@X0F"
  281.     Endif
  282.     Delay (3 * 182) / 10
  283.     Goto LABEL008
  284.     :LABEL010
  285.     DCloseAll
  286.     Delete PPEPath() + STRING003 + ".NDX"
  287.     End
  288.  
  289. ;------------------------------------------------------------------------------
  290. ;
  291. ; Usage report (before postprocessing)
  292. ;
  293. ; ■ Statements used :
  294. ;
  295. ;    3       End
  296. ;    2       Cls
  297. ;    15      ClrEol
  298. ;    45      Goto 
  299. ;    34      Let 
  300. ;    10      Print 
  301. ;    39      PrintLn 
  302. ;    24      If 
  303. ;    1       FAppend 
  304. ;    1       FClose 
  305. ;    3       FPutLn 
  306. ;    2       Delete 
  307. ;    5       InputStr 
  308. ;    10      Delay 
  309. ;    1       Inc 
  310. ;    1       Newline
  311. ;    1       Call 
  312. ;    15      Backup 
  313. ;    1       EndFunc
  314. ;    7       DOpen 
  315. ;    10      DCloseAll
  316. ;    1       DnCreate 
  317. ;    3       DTop 
  318. ;    3       DGo 
  319. ;    1       DSeek 
  320. ;    9       DGet 
  321. ;    6       DPut 
  322. ;
  323. ;
  324. ; ■ Functions used :
  325. ;
  326. ;    9       *
  327. ;    10      /
  328. ;    35      +
  329. ;    5       -
  330. ;    15      ==
  331. ;    7       <
  332. ;    2       <=
  333. ;    3       >
  334. ;    4       >=
  335. ;    16      !
  336. ;    5       &&
  337. ;    2       ||
  338. ;    1       Trim()
  339. ;    8       Random()
  340. ;    1       Date()
  341. ;    4       String()
  342. ;    3       Mask_Num()
  343. ;    1       Mask_Ascii()
  344. ;    12      PPEPath()
  345. ;    2       PcbNode()
  346. ;    1       GetEnv()
  347. ;    3       ToInteger()
  348. ;    1       Mixed()
  349. ;    2       DRecNo()
  350. ;    1       DGet()
  351. ;    1       DChkStat()
  352. ;
  353. ;------------------------------------------------------------------------------
  354. ;
  355. ; Analysis flags : C
  356. ;
  357. ; C - Call child PPE ■ 3
  358. ;     This is usually normal, but may be a tricky way to launch some
  359. ;     sysop-only commands.
  360. ;     ■ Search for : CALL
  361. ;
  362. ;------------------------------------------------------------------------------
  363. ;
  364. ; Postprocessing report
  365. ;
  366. ;    2       For/Next
  367. ;    0       While/EndWhile
  368. ;    8       If/Then or If/Then/Else
  369. ;    1       Select Case
  370. ;
  371. ;------------------------------------------------------------------------------
  372. ;                 AEGiS Corp - Break the routines, code against the machines!
  373. ;------------------------------------------------------------------------------
  374.